import { customRef } from "vue";

export default function (InitData: string, delay: number) {
  let timer: number;
  let msg = customRef((track, trigger) => {
    return {
      get() {
        track(); // 持续关注数据是否发生变化
        return InitData;
      },
      set(value) {
        clearTimeout(timer);
        timer = setTimeout(() => {
          // value是你输入的新值
          InitData = value;
          trigger(); // 通知Vue，此时数据发生变化了，让它做出相应的改变
        }, delay);
      },
    };
  });

  return {
    msg,
  };
}

/**
 * 当面试官问到你 自定义ref的时候，其实就是关键的是在问你 track函数和trigger函数，是起什么作用的
 */
